/*
 * Copyright (C) 2019 The Turms Project
 * https://github.com/turms-im/turms
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: request/message/query_messages_request.proto

package im.turms.client.model.proto.request.message;

public interface QueryMessagesRequestOrBuilder extends
    // @@protoc_insertion_point(interface_extends:im.turms.proto.QueryMessagesRequest)
    com.google.protobuf.MessageLiteOrBuilder {

  /**
   * <code>repeated int64 ids = 1;</code>
   * @return A list containing the ids.
   */
  java.util.List<java.lang.Long> getIdsList();
  /**
   * <code>repeated int64 ids = 1;</code>
   * @return The count of ids.
   */
  int getIdsCount();
  /**
   * <code>repeated int64 ids = 1;</code>
   * @param index The index of the element to return.
   * @return The ids at the given index.
   */
  long getIds(int index);

  /**
   * <code>optional int32 size = 2;</code>
   * @return Whether the size field is set.
   */
  boolean hasSize();
  /**
   * <code>optional int32 size = 2;</code>
   * @return The size.
   */
  int getSize();

  /**
   * <code>optional bool are_group_messages = 3;</code>
   * @return Whether the areGroupMessages field is set.
   */
  boolean hasAreGroupMessages();
  /**
   * <code>optional bool are_group_messages = 3;</code>
   * @return The areGroupMessages.
   */
  boolean getAreGroupMessages();

  /**
   * <code>optional bool are_system_messages = 4;</code>
   * @return Whether the areSystemMessages field is set.
   */
  boolean hasAreSystemMessages();
  /**
   * <code>optional bool are_system_messages = 4;</code>
   * @return The areSystemMessages.
   */
  boolean getAreSystemMessages();

  /**
   * <code>optional int64 from_id = 5;</code>
   * @return Whether the fromId field is set.
   */
  boolean hasFromId();
  /**
   * <code>optional int64 from_id = 5;</code>
   * @return The fromId.
   */
  long getFromId();

  /**
   * <code>optional int64 delivery_date_after = 6;</code>
   * @return Whether the deliveryDateAfter field is set.
   */
  boolean hasDeliveryDateAfter();
  /**
   * <code>optional int64 delivery_date_after = 6;</code>
   * @return The deliveryDateAfter.
   */
  long getDeliveryDateAfter();

  /**
   * <code>optional int64 delivery_date_before = 7;</code>
   * @return Whether the deliveryDateBefore field is set.
   */
  boolean hasDeliveryDateBefore();
  /**
   * <code>optional int64 delivery_date_before = 7;</code>
   * @return The deliveryDateBefore.
   */
  long getDeliveryDateBefore();

  /**
   * <code>bool with_total = 8;</code>
   * @return The withTotal.
   */
  boolean getWithTotal();
}
